package org.proddevplm.dao.api;

import java.util.List;

import org.proddevplm.dao.data.Resource;
import org.proddevplm.dao.data.changeReport.ChangeReport;
import org.proddevplm.dao.data.competitors.Competitors;
import org.proddevplm.dao.data.competitors.CompetitorsProduct;
import org.proddevplm.dao.data.conceptSelection.PughAnalysis;
import org.proddevplm.dao.data.correlations.QFD;
import org.proddevplm.dao.data.designForX.DesignForX;
import org.proddevplm.dao.data.designForX.DfXGuidelines;
import org.proddevplm.dao.data.designForX.DfXImportances;
import org.proddevplm.dao.data.designForX.DfXRelMatrix;
import org.proddevplm.dao.data.designInputs.CTQs;
import org.proddevplm.dao.data.designInputs.DesignElements;
import org.proddevplm.dao.data.designInputs.ProductFunctions;
import org.proddevplm.dao.data.prioritize.AHPAnalysis;
import org.proddevplm.dao.data.productFollowUp.productionPhase.ManufacturingItinerary;
import org.proddevplm.dao.data.productFollowUp.productionPhase.Process;
import org.proddevplm.dao.data.productFollowUp.usePhase.Complaints;
import org.proddevplm.dao.data.productFollowUp.usePhase.Suggestions;
import org.proddevplm.dao.data.requirements.Requirements;
import org.proddevplm.dao.data.requirements.VOCTable;
import org.proddevplm.dao.data.stakeholders.Stakeholder;
import org.proddevplm.dao.data.swot.SwotAnalysis;

public interface IDataAccessMgmt {

	List<Competitors> getCompetitorByProductId(int productId);
	
	List<CompetitorsProduct> getCompetitorsProductByProductId(int productId);
	
	String getCompetitorProductsByComp(String competitor, int productId);
	
	String getTechCharByProduct(String product, int productId);
	
	List<CompetitorsProduct> getCPByActNameandProdId(String name, int productId);
	
	List<SwotAnalysis> getSwotByActNameandProdId(String activityName, int productId);
	
	SwotAnalysis getSwotByNameandProdId(String name, int productId);
	
	boolean getStakeholdersByNameandProdId(String name, int productId);
	
	List<Stakeholder> getStakeholdersByProductId(int productId);
	
	List<Stakeholder> getSHByActNameandProdId(String activityName, int productId);
	
	Stakeholder getSHByNameandProdId(String shName, int productId);
	
	List<Requirements> getRequirementsByProductId(int productId);
	
	Requirements getRequirementByName(String requirement);
	
	Requirements getRequirementById(int requirementId);
	
	List<Requirements> getReqByActNameandProdId(String activityName, int productId);
	
	Requirements getReqByNameandProdId(String requirement, int productId);
	
	List<Requirements> getReqsByAuthorandProdId(String author, int productId);
	
	List<VOCTable> getVOCByProductId(int productId);
	
	List<VOCTable> getVOCByActNameandProdId(String activityName, int productId);
	
	List<ProductFunctions> getFunctionsByProductId(int productId);
	
	List<ProductFunctions> getFunctionsByActNameandProdId(String activityName, int productId);
	
	List<CTQs> getCTQsByProductId(int productId);
	
	List<CTQs> getCTQByActNameandProdId(String activityName, int productId);
	
	List<DesignElements> getDEByProductId(int productId);
	
	List<DesignElements> getDEByActNameandProdId(String activityName, int productId);
	
	List<AHPAnalysis> getAHPByActNameandProdId(String activityName, int productId);
	
	List<ChangeReport> getCRByActNameandProdId(String activityName, int productId);
	
	ChangeReport getCRBySubjectandProdId(int id, int productId);
	
	List<ManufacturingItinerary> getMIByProductId(int productId);
	
	List<Process> getProcessByProductId(int productId);
	
	List<Suggestions> getSuggestionsByProdId(int productId);
	
	List<Complaints> getComplaintsByProdId(int productId);
	
	PughAnalysis getPughByActNameandProdId(String activityName, int productId);
	
	QFD getQFDByActNameandProdId(String activityName, int productId);
	
	List<DesignForX> getAllDfX();
	
	DesignForX getDfXById(int dfxId);
	
	List<DesignForX> getDfXByIds(String[] ids);
	
	List<DfXGuidelines> getGuidelinesByDfxId(int dfxId);
	
	DfXGuidelines getSpecificGuidelineById(int dfxGId);
	
	List<DfXGuidelines> getGuidelinesByDfxIds(String[] ids);
	
	List<DfXRelMatrix> dfxRelMatrixByActNameandProdId(String activityName, int productId);
	
	List<DesignForX> getDfxByProdId(int productId);
	
	List<DfXGuidelines> getDfXGuidelinesByProdId(int productId);
	
	List<DfXImportances> getDfXImportancesByProdId(int productId);
	
	List<Resource> getResourceByActNameandProdId(String activityName, int productId);
	
}